Computers may wish to communicate with each other. Conventionally, computers may have included communication hardware (e.g., network interface card (NIC)) to facilitate these communications. The NIC may have performed some computer communication functions while other computer communication functions may have been performed by a computer with which the NIC is associated and/or by an operating system running on the computer.
Computers may be idle for periods of time. When a computer is idle for a pre-determined, configurable period of time, the computer may decide to save energy and thus may enter a lower power state (e.g., sleep, S3). Unfortunately, a computer that enters a lower power state may appear to be off-line to a computer trying to communicate with the lower power state computer. While the lower power state computer may intend on receiving incoming calls and/or call signals, the computer may take so long to transition from a lower power state to a higher power state in which the call and/or call signal can be processed that the call signals may not be processed in a timely fashion and the computer may appear to be offline. The transition time may lead to incoming call signals being dropped. Thus, a computer that is online but asleep may appear offline to applications including voice over internet protocol (VoIP), instant messaging (IM), electronic mail (email), and so on.
In addition to computer hardware (e.g., NIC), a computer may include software (e.g., a networking stack) to facilitate communications. A computer communication may traverse several layers of a protocol “stack”. A computer that enters a lower power state may drop outgoing call signals because applications operating at an upper level of the stack may not be aware that components at a lower level (e.g., physical layer) are in a temporarily unavailable (e.g., sleep) state. Thus, outgoing call signals may be dropped by, for example, a layer 2 network.